#ifndef _BASE64_H_
#define _BASE64_H_

#include "stdint.h"
#include "string.h"
#include "stdbool.h"

/**
 * @brief base 加密
 * 
 * @param pDataIn  - 输入数据流
 * @param SizeIn   - 输入数据长度
 * @param pDataOut - 输出加密后的数据
 * @return bool    - 加密状态(true:成功 false:失败)
 */
extern bool Base64Encode(const uint8_t *pDataIn, uint32_t SizeIn, char *pDataOut);

/**
 * @brief base 解密
 * 
 * @param pDataIn  - 待解密的数据流
 * @param SizeIn   - 解密数据流长度
 * @param pDataOut - 输出解密后的数据流
 * @param pSizeOut - 解密后的数据流长度
 * @return bool    - 解密状态(true:成功 false:失败)
 */
extern bool Base64Decode(const char *pDataIn, uint32_t SizeIn, uint8_t *pDataOut, uint32_t *pSizeOut);

#endif
